package com.atguigu.jvm;

public class MyClassLoaderTest {

    public static void main(String[] args) {

        // 1、获取当前类的类加载器
        ClassLoader classLoader = MyClassLoaderTest.class.getClassLoader();

        // 2、获取当前类加载器的全类名
        String classLoaderFullName = classLoader.getClass().getName();

        // sun.misc.Launcher类的内部类：AppClassLoader
        System.out.println("classLoaderFullName = " + classLoaderFullName);

        // 3、获取当前类加载器的父加载器
        ClassLoader fatherClassLoader = classLoader.getParent();

        // 4、获取父加载器的全类名
        String fatherClassName = fatherClassLoader.getClass().getName();

        // sun.misc.Launcher类的内部类：ExtClassLoader
        System.out.println("fatherClassName = " + fatherClassName);

        // 5、获取爷爷加载器
        ClassLoader grandpaClassLoader = fatherClassLoader.getParent();

        // 打印出来是 null 值。这并不表示它不存在，而是因为它由 C 语言开发，所以 Java 环境中获取不到
        System.out.println("grandpaClassLoader = " + grandpaClassLoader);

    }

}
